#pragma once

#pragma managed

#include "TaskPlan.h"

namespace BroodWar
{
	namespace Addon
	{
		ref class BuildEventTimeline;
		ref class Task;
		ref class BuildUnit;
		ref class BuildUnitManager;

		public interface class ITaskScheduler
		{
			TaskPlan^ ScheduleTask(Task^ t);
			bool FinalizeSchedule();
			property int InsufficientTypes { int get(); }
			property int SupplyBlockTime { int get(); }
			void ResetSupplyBlockTime();
			property int LastMineralBlockTime { int get(); }
			void ResetLastMineralBlockTime();
			property int LastGasBlockTime { int get(); }
			void ResetLastGasBlockTime();
			property BuildEventTimeline^ Timeline { BuildEventTimeline^ get(); }
		};
	}
}
